This patent application claims priority from the commonly assigned United Kingdom Patent Application entitled xe2x80x9cInteraction With Database Reportsxe2x80x9d, having United Kingdom Patent Application Serial No. 9925741.2, filed on Oct. 30, 1999, by Dario de Judicibus, which application is incorporated herein by reference in its entirety.
1. Field of Invention
The present invention relates to a system cooperable with a database which allows a user to interact with a database report to refine a database query.
2. Background of the Invention
A database can be considered as a multidimensional space (mD-space) where each axis corresponds to an attribute and each object occupies a point in that space. Attribute values may be finite or infinite; continuous, discrete ordinal or discrete nominal. Take, for example, an object 10 as shown in FIG. 1, where each vertex 12 represents one of five attributes. In this case, the object has a value for each attribute, as shown by the lines 14 linking the object to each of its attribute values. However, it should be seen that objects need not be valued for all attributes and this can be represented by omitting a line 14 for such null attributes.
Conventional relational databases store information in a plurality of tables (relations) with each table containing one or more objects and each object containing one or more attributes. Selecting objects in a database corresponds to identifying a subset of objects in the mD-space by specifying one or more conditions within a query. A common form of specifying a query on such databases employs a Structured Query Language (SQL). SQL queries generally take the form:
Select Attributes from Relations where Conditions
Where a database comprises many tables linked together through a complex network of index fields, a database query may become quite complex involving, for example, INNERJOIN expressions. Often applications which link to databases do not expose a user to having to specify a complete SQL query, rather they take input from the user in a simple manner, for example, getting the name of the person they wish to find using a text entry field. This Condition is then inserted into a query where the Attributes which are to form the resultant report and the Relations from which information is drawn for the query are pre-defined by a programmer.
The resultant report is itself usually a relation, again comprising a number of objects conforming to the conditions and having the attributes specified in the query. The relation is then rendered so that it can be displayed on the screen in a suitable mannerxe2x80x94for example as a table or as a graph.
The resultant report can be thought of as a notional curve in the mD-space connecting all the objects 101 . . . 102 belonging to the subset identified by the query, FIG. 2, and moving through the report is equivalent to navigating along that curve. Nonetheless, because the report is static, should the user not find the required information, they must backtrack to amend the original query before being presented with a new report.
It will be seen, however, that the user often does not have all the right information to define the best possible query initially. Thus, the user submits a query, looks at the results, modifies the query, gets the new result, and so forth. So, to get closer to the desired result requires resubmitting another query which means losing time and it also means that both the original query and the original report are lost.
Query-by-Example (QBE) is a well known method for constructing a database query graphically, again removing the user from needing to learn and write SQL. Using QBE, a user essentially draws an example table comprising the attributes involved in the query and sets attribute values according to the required conditions. The example table is then analyzed, a structured query generated and fed to the database to produce a report.
It is known using a QBE interface to take a report resulting from a first query and use this report in turn as an input for generating a second or subsequent query, for example, Information Server produced by Verity, Inc. For more information see xe2x80x9cverity.comxe2x80x9d. Each subsequent report, however, still replaces a both previous query and its associated report when generating a new report.
An attempt to move within the results of one query to form another query has been proposed in a visual thesaurus produced by Plumb Design, Inc. For more information see xe2x80x9cplumbdesign.com/thesaurus/xe2x80x9d. It should be seen, however, that in this case that the report only includes one and only one attribute type, ie synonym, and the query one and only one condition, ie the search word.
It is an object of the present invention, to enable a user to locally move around a specific object in a multi-attribute type database space, according to one or more selected conditions, to provide fine tuning of the result obtained in a report.
Accordingly, the present invention provides a system cooperable with a database which allows a user to interact with a database report to refine a database query according to a system cooperable with a database which is responsive to a query to produce an associated report comprising one or more objects, each object comprising a plurality of attributes, said system comprising: means for storing one or more reports from respective database queries; means for rendering at least one object from said stored reports; means, responsive to user interaction, for navigating through objects composing said stored reports to select an object; means, responsive to user interaction, for selecting one or more attributes of said selected object; means, responsive to user interaction, for determining a value of a selected attribute to be used as a condition in a subsequent database query; and means, responsive to said selected attribute values, for generating said subsequent database query.
In further embodiments, an initial query on the database is submitted providing predicates for at least one object attribute. In response, an initial set of objects having attributes satisfying the initial query is received. The initial set of objects is ordered into a sequence indicating an order in which the objects are presented to a user through a computer user interface. A subsequent query on the database is submitted providing different predicates than used in the initial query at a query point in the sequence of the ordered initial set of objects. In response, an additional set of objects satisfying the predicates in the subsequent query is received. The additional set of objects is merged with the initial set of objects at the query point.
Still further, the initial set and additional set are ordered into a merged sequence indicating an order in which the first and additional sets of objects are presented to the user through a computer user interface.
The preferred embodiments allow a user to select an object in the database space laying on a report curve, and allows the user to move directly from there in the database space, without requiring the user to submit another query to create another curve in that space.